class NoticeDetailModel {
  int code;
  Data data;
  String error;
  String message;

  NoticeDetailModel({this.code, this.data, this.error, this.message});

  NoticeDetailModel.fromJson(Map<String, dynamic> json) {
    code = json['code'];
    data = json['data'] != null ? new Data.fromJson(json['data']) : null;
    error = json['error'];
    message = json['message'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['code'] = this.code;
    if (this.data != null) {
      data['data'] = this.data.toJson();
    }
    data['error'] = this.error;
    data['message'] = this.message;
    return data;
  }
}

class Data {
  String createTime;
  String detailUrl;
  int id;
  int isDelete;
  List<NoticeAttachmentEntityList> noticeAttachmentEntityList;
  String noticeContent;
  List<NoticeJobRelationEntityList> noticeJobRelationEntityList;
  List<NoticeStaffList> noticeStaffList;
  int noticeStaffType;
  List<NoticeStudentList> noticeStudentList;
  int noticeStudentType;
  String noticeTitle;
  int noticeType;
  String publishOrganization;
  int publishStatus;
  String publishStatusName;
  String publishTime;
  int publishType;
  String publishTypeName;
  int publishUserId;
  String publishUserName;
  String readSituation;
  int receiveNum;
  int status;
  String updateTime;

  Data(
      {this.createTime,
      this.detailUrl,
      this.id,
      this.isDelete,
      this.noticeAttachmentEntityList,
      this.noticeContent,
      this.noticeJobRelationEntityList,
      this.noticeStaffList,
      this.noticeStaffType,
      this.noticeStudentList,
      this.noticeStudentType,
      this.noticeTitle,
      this.noticeType,
      this.publishOrganization,
      this.publishStatus,
      this.publishStatusName,
      this.publishTime,
      this.publishType,
      this.publishTypeName,
      this.publishUserId,
      this.publishUserName,
      this.readSituation,
      this.receiveNum,
      this.status,
      this.updateTime});

  Data.fromJson(Map<String, dynamic> json) {
    createTime = json['createTime'];
    detailUrl = json['detailUrl'];
    id = json['id'];
    isDelete = json['isDelete'];
    if (json['noticeAttachmentEntityList'] != null) {
      noticeAttachmentEntityList = new List<NoticeAttachmentEntityList>();
      json['noticeAttachmentEntityList'].forEach((v) {
        noticeAttachmentEntityList
            .add(new NoticeAttachmentEntityList.fromJson(v));
      });
    }
    noticeContent = json['noticeContent'];
    if (json['noticeJobRelationEntityList'] != null) {
      noticeJobRelationEntityList = new List<NoticeJobRelationEntityList>();
      json['noticeJobRelationEntityList'].forEach((v) {
        noticeJobRelationEntityList
            .add(new NoticeJobRelationEntityList.fromJson(v));
      });
    }
    if (json['noticeStaffList'] != null) {
      noticeStaffList = new List<NoticeStaffList>();
      json['noticeStaffList'].forEach((v) {
        noticeStaffList.add(new NoticeStaffList.fromJson(v));
      });
    }
    noticeStaffType = json['noticeStaffType'];
    if (json['noticeStudentList'] != null) {
      noticeStudentList = new List<NoticeStudentList>();
      json['noticeStudentList'].forEach((v) {
        noticeStudentList.add(new NoticeStudentList.fromJson(v));
      });
    }
    noticeStudentType = json['noticeStudentType'];
    noticeTitle = json['noticeTitle'];
    noticeType = json['noticeType'];
    publishOrganization = json['publishOrganization'];
    publishStatus = json['publishStatus'];
    publishStatusName = json['publishStatusName'];
    publishTime = json['publishTime'];
    publishType = json['publishType'];
    publishTypeName = json['publishTypeName'];
    publishUserId = json['publishUserId'];
    publishUserName = json['publishUserName'];
    readSituation = json['readSituation'];
    receiveNum = json['receiveNum'];
    status = json['status'];
    updateTime = json['updateTime'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['createTime'] = this.createTime;
    data['detailUrl'] = this.detailUrl;
    data['id'] = this.id;
    data['isDelete'] = this.isDelete;
    if (this.noticeAttachmentEntityList != null) {
      data['noticeAttachmentEntityList'] =
          this.noticeAttachmentEntityList.map((v) => v.toJson()).toList();
    }
    data['noticeContent'] = this.noticeContent;
    if (this.noticeJobRelationEntityList != null) {
      data['noticeJobRelationEntityList'] =
          this.noticeJobRelationEntityList.map((v) => v.toJson()).toList();
    }
    if (this.noticeStaffList != null) {
      data['noticeStaffList'] =
          this.noticeStaffList.map((v) => v.toJson()).toList();
    }
    data['noticeStaffType'] = this.noticeStaffType;
    if (this.noticeStudentList != null) {
      data['noticeStudentList'] =
          this.noticeStudentList.map((v) => v.toJson()).toList();
    }
    data['noticeStudentType'] = this.noticeStudentType;
    data['noticeTitle'] = this.noticeTitle;
    data['noticeType'] = this.noticeType;
    data['publishOrganization'] = this.publishOrganization;
    data['publishStatus'] = this.publishStatus;
    data['publishStatusName'] = this.publishStatusName;
    data['publishTime'] = this.publishTime;
    data['publishType'] = this.publishType;
    data['publishTypeName'] = this.publishTypeName;
    data['publishUserId'] = this.publishUserId;
    data['publishUserName'] = this.publishUserName;
    data['readSituation'] = this.readSituation;
    data['receiveNum'] = this.receiveNum;
    data['status'] = this.status;
    data['updateTime'] = this.updateTime;
    return data;
  }
}

class NoticeAttachmentEntityList {
  String fileName;
  String remoteImgUrl;
  String remoteUrl;

  NoticeAttachmentEntityList(
      {this.fileName, this.remoteImgUrl, this.remoteUrl});

  NoticeAttachmentEntityList.fromJson(Map<String, dynamic> json) {
    fileName = json['fileName'];
    remoteImgUrl = json['remoteImgUrl'];
    remoteUrl = json['remoteUrl'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['fileName'] = this.fileName;
    data['remoteImgUrl'] = this.remoteImgUrl;
    data['remoteUrl'] = this.remoteUrl;
    return data;
  }
}

class NoticeJobRelationEntityList {
  String createTime;
  int id;
  int isDelete;
  int jobId;
  String jobName;
  int noticeId;
  int status;
  String updateTime;

  NoticeJobRelationEntityList(
      {this.createTime,
      this.id,
      this.isDelete,
      this.jobId,
      this.jobName,
      this.noticeId,
      this.status,
      this.updateTime});

  NoticeJobRelationEntityList.fromJson(Map<String, dynamic> json) {
    createTime = json['createTime'];
    id = json['id'];
    isDelete = json['isDelete'];
    jobId = json['jobId'];
    jobName = json['jobName'];
    noticeId = json['noticeId'];
    status = json['status'];
    updateTime = json['updateTime'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['createTime'] = this.createTime;
    data['id'] = this.id;
    data['isDelete'] = this.isDelete;
    data['jobId'] = this.jobId;
    data['jobName'] = this.jobName;
    data['noticeId'] = this.noticeId;
    data['status'] = this.status;
    data['updateTime'] = this.updateTime;
    return data;
  }
}

class NoticeStaffList {
  String account;
  String clazzName;
  String createTime;
  String departmentName;
  int id;
  int isDelete;
  int jobRelation;
  int noticeId;
  String readTime;
  int status;
  String updateTime;
  int userId;
  String userName;
  int userRead;
  int userType;

  NoticeStaffList(
      {this.account,
      this.clazzName,
      this.createTime,
      this.departmentName,
      this.id,
      this.isDelete,
      this.jobRelation,
      this.noticeId,
      this.readTime,
      this.status,
      this.updateTime,
      this.userId,
      this.userName,
      this.userRead,
      this.userType});

  NoticeStaffList.fromJson(Map<String, dynamic> json) {
    account = json['account'];
    clazzName = json['clazzName'];
    createTime = json['createTime'];
    departmentName = json['departmentName'];
    id = json['id'];
    isDelete = json['isDelete'];
    jobRelation = json['jobRelation'];
    noticeId = json['noticeId'];
    readTime = json['readTime'];
    status = json['status'];
    updateTime = json['updateTime'];
    userId = json['userId'];
    userName = json['userName'];
    userRead = json['userRead'];
    userType = json['userType'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['account'] = this.account;
    data['clazzName'] = this.clazzName;
    data['createTime'] = this.createTime;
    data['departmentName'] = this.departmentName;
    data['id'] = this.id;
    data['isDelete'] = this.isDelete;
    data['jobRelation'] = this.jobRelation;
    data['noticeId'] = this.noticeId;
    data['readTime'] = this.readTime;
    data['status'] = this.status;
    data['updateTime'] = this.updateTime;
    data['userId'] = this.userId;
    data['userName'] = this.userName;
    data['userRead'] = this.userRead;
    data['userType'] = this.userType;
    return data;
  }
}

class NoticeStudentList {
  String account;
  String clazzName;
  String createTime;
  String departmentName;
  int id;
  int isDelete;
  int jobRelation;
  int noticeId;
  String readTime;
  int status;
  String studentName;
  String studentNumber;
  String updateTime;
  int userId;
  String userName;
  int userRead;
  int userType;

  NoticeStudentList(
      {this.account,
      this.clazzName,
      this.createTime,
      this.departmentName,
      this.id,
      this.isDelete,
      this.jobRelation,
      this.noticeId,
      this.readTime,
      this.status,
      this.studentName,
      this.studentNumber,
      this.updateTime,
      this.userId,
      this.userName,
      this.userRead,
      this.userType});

  NoticeStudentList.fromJson(Map<String, dynamic> json) {
    account = json['account'];
    clazzName = json['clazzName'];
    createTime = json['createTime'];
    departmentName = json['departmentName'];
    id = json['id'];
    isDelete = json['isDelete'];
    jobRelation = json['jobRelation'];
    noticeId = json['noticeId'];
    readTime = json['readTime'];
    status = json['status'];
    studentName = json['studentName'];
    studentNumber = json['studentNumber'];
    updateTime = json['updateTime'];
    userId = json['userId'];
    userName = json['userName'];
    userRead = json['userRead'];
    userType = json['userType'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['account'] = this.account;
    data['clazzName'] = this.clazzName;
    data['createTime'] = this.createTime;
    data['departmentName'] = this.departmentName;
    data['id'] = this.id;
    data['isDelete'] = this.isDelete;
    data['jobRelation'] = this.jobRelation;
    data['noticeId'] = this.noticeId;
    data['readTime'] = this.readTime;
    data['status'] = this.status;
    data['studentName'] = this.studentName;
    data['studentNumber'] = this.studentNumber;
    data['updateTime'] = this.updateTime;
    data['userId'] = this.userId;
    data['userName'] = this.userName;
    data['userRead'] = this.userRead;
    data['userType'] = this.userType;
    return data;
  }
}
